package tests;

import common.Utils;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.io.IOException;
import java.time.Duration;

public class PageByNoLogin extends Utils {
    // 游戏大厅页面的 URL
    private String hallUrl = "http://120.27.122.55:8080/game_hall.html";
    // 游戏房间页面的 URL
    private String roomUrl = "http://120.27.122.55:8080/game_room.html";
    // 设置显式等待
    private WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(2));
    // 创建构造方法, 随便传入一个 url ,防止报错
    public PageByNoLogin() {
        super("https://www.baidu.com/");
    }

    // 游戏大厅页面没登录时的测试用例
    public void HallPageNoLogin() throws InterruptedException, IOException {
        // 跳转到游戏大厅页面
        driver.get(hallUrl);
        // 屏幕截图, 进行抓拍
        getScreenShot("HallPageNoLogin");
        // 查找匹配按钮,进行点击操作
        driver.findElement(By.cssSelector("#match-button")).click();
        Thread.sleep(200);
        driver.findElement(By.cssSelector("#match-button")).click();
        // 等待弹窗出现
        wait.until(ExpectedConditions.alertIsPresent());
        Alert alert = driver.switchTo().alert();
        // 验证弹窗文本信息
        assert alert.getText().equals("当前您的连接已经断开! 请重新登录!");
        // 点击确定
        alert.accept();
        // 获取当前页面标题信息
        String title = driver.getTitle();
        // 验证当前页面标题信息,来观察页面是否成功进行跳转
        assert title.equals("登录");
    }

    // 游戏房间页面没登录时的测试用例
    public void RoomPageNoLogin() throws InterruptedException {
        // 跳转到游戏大厅页面
        driver.get(roomUrl);
        Alert alert = driver.switchTo().alert();
        // 验证弹窗信息
        assert alert.getText().equals("连接游戏失败! reason: 用户尚未登录!");
        // 点击确定
        alert.accept();
        // 获取当前页面标题信息
        String title = driver.getTitle();
        // 验证当前页面标题信息, 来观察页面是否成功进行跳转
        assert title.equals("游戏大厅");
    }
}
